[PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
authorSebastian Dröge <sebastian@centricular.com>
Tue, 23 Mar 2021 17:19:14 +0000 (19:19 +0200)
committerThorsten Alteholz <debian@alteholz.de>
Fri, 27 Oct 2023 20:55:02 +0000 (22:55 +0200)
commit9bfdbf0bbd4eaec2764596b247d19097e388a6e2
tree9a73530e839b8729de96c1087a2b9d0242cde087
parenta5257a221283d698408a9f40e799e1402e2d8fe0
[PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations

Offset and size are stored as 32 bit guint and might overflow when
adding the nal_length_size, so let's avoid that.

For the size this would happen if the AVC/HEVC NAL unit size happens to
be stored in 4 bytes and is 4294967292 or higher, which is likely
corrupted data anyway.

For the offset this is something for the caller of these functions to
take care of but is unlikely to happen as it would require parsing on a
>4GB buffer.

Allowing these overflows causes all kinds of follow-up bugs in the
h2645parse elements, ranging from infinite loops and memory leaks to
potential memory corruptions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2103>

Gbp-Pq: Name 0001-h2645parser-Catch-overflows-in-AVC-HEVC-NAL-unit-length.patch
gst-libs/gst/codecparsers/gsth264parser.c
gst-libs/gst/codecparsers/gsth265parser.c